<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:cote="http://java.sun.com/jsf/composite/componentes">

    <ui:composition template="/plantillas/plantillaPrincipal.xhtml">
        <ui:define name="contenido">
            <f:view>
                <h:form id="formFacturacion">
                    <p:panel id="pnlFacturacion" header="Registrar Nota Credito"
                             style="width:100%;margin: 0px auto;">
                        <p:panelGrid id="pnlPrincipal" style="width:100%;margin: 0px auto">

                            <p:row>
                                <p:column colspan="6">
                                    <p:fieldset legend="Datos del Generales" toggleable="true"
                                                toggleSpeed="500">
                                        <p:panelGrid style="width:100%;margin: 0px auto;">

                                            <p:row> 
                                                <p:column colspan="5">

                                                </p:column>
                                                <p:column>
                                                    <p:inputText id="txtSerieDoc" required="true" 
                                                                 size="3" value="#{BKCompraNotaCredito.notaCreditoFormulario.serienc}"  maxlength="3" >
                                                        <f:validateRegex pattern="[0-9]*" />
                                                    </p:inputText>  
                                                    <p:inputText id="txtNumDoc" required="true" 
                                                                 size="10" value="#{BKCompraNotaCredito.notaCreditoFormulario.numnc}"  maxlength="8" >
                                                        <f:validateRegex pattern="[0-9]*" />
                                                    </p:inputText>  

                                                    <p:message for="txtSerieDoc" display="text"  />
                                                    <p:message for="txtNumDoc" display="text"  />
                                                    <span class="formatComment">Ejemplo: 001-342167</span>
                                                </p:column>



                                            </p:row>
                                            <p:row>
                                                <p:column colspan="4">

                                                </p:column>
                                                <p:column>
                                                    <h:outputLabel id="fechaEmision" value="FECHA EMISIÓN(*)" styleClass="lblForm"  />
                                                </p:column>
                                                <p:column>
                                                    <p:calendar id="calendarFechaEmision" 
                                                                value="#{BKCompraNotaCredito.notaCreditoFormulario.fechanc}"
                                                                pattern="dd/MM/yyyy" size="13"
                                                                showButtonPanel="true" navigator="true" showOn="button"
                                                                required="true" locale="es"  >
                                                        <p:ajax process="@this" event="dateSelect" listener="#{MBCompraNotaCredito.marcarFecha}" 
                                                                update="txtTipoCambio,calendarFechaEmision,:formFacturacion:btnAgregarDet" />
                                                    </p:calendar>
                                                    <p:message for="calendarFechaEmision" display="text"  />
                                                </p:column>     
                                            </p:row>

                                            <p:row>
                                                <p:column>
                                                    <h:outputLabel id="lblRUC" value="NRO RUC(*)" styleClass="lblForm"   />
                                                </p:column>
                                                <p:column>
                                                    <p:inputText id="txtRuc"  onkeyup="cambiarMayuscula(this)" required="true"
                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.ruc}" />
                                                    <p:message for="txtRuc" display="text"  />
                                                </p:column>
                                                <p:column>
                                                    <cote:componenteFindProveedor id="findProveedor" 
                                                                                  lblbtnfind="Buscar Proveedor"                                                                                                      
                                                                                  update=":formFacturacion:txtRuc,:formFacturacion:txtRazonSocial,:formFacturacion:txtDireccion,
                                                                                  :formFacturacion:btnAgregarDet"/>
                                                </p:column>
                                                <p:column>

                                                </p:column>
                                                <p:column>
                                                    <h:outputLabel id="lblTipoCambio" value="TIPO CAMBIO(*)" styleClass="lblForm" />
                                                </p:column>
                                                <p:column>
                                                    <p:inputText id="txtTipoCambio"  onkeyup="cambiarMayuscula(this)" required="true"
                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.tipocambio}" />
                                                    <p:message for="txtTipoCambio" display="text"  />
                                                </p:column>
                                            </p:row>

                                            <p:row>
                                                <p:column>
                                                    <h:outputLabel id="lblRazonSocial"
                                                                   value="RAZÓN SOCIAL(*)" styleClass="lblForm" />
                                                </p:column>
                                                <p:column colspan="5">
                                                    <p:inputText id="txtRazonSocial"  onkeyup="cambiarMayuscula(this)" required="true"
                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.razon}" size="120"/>
                                                    <p:message for="txtRazonSocial" display="text"  />
                                                </p:column>											
                                            </p:row>
                                            <p:row>
                                                <p:column>
                                                    <h:outputLabel id="lblDireccion"
                                                                   value="DIRECCIÓN(*)" styleClass="lblForm" />
                                                </p:column>
                                                <p:column colspan="5">
                                                    <p:inputText id="txtDireccion"  onkeyup="cambiarMayuscula(this)" required="true"
                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.direccion}" size="120"/>
                                                    <p:message for="txtDireccion" display="text"  />
                                                </p:column>											
                                            </p:row>

                                            <p:row>


                                                <p:column>
                                                    <h:outputLabel id="lblTipMoneda"
                                                                   value="TIPO MONEDA(*) " styleClass="lblForm"  />
                                                </p:column>
                                                <p:column>
                                                    <p:selectOneMenu id="cbxTipMoneda" required="true" converter="#{tipoMonedaConverter}"
                                                                     value="#{BKCompraNotaCredito.notaCreditoFormulario.moneda}" >
                                                        <f:selectItem itemLabel="Seleccionar" itemValue="" />
                                                        <f:selectItems value="#{BKCompraNotaCredito.listaTipoMoneda}"
                                                                       var="tipoMoneda" itemLabel="#{tipoMoneda.nombre}"
                                                                       itemValue="#{tipoMoneda}" />
                                                        <p:ajax update=":formFacturacion:txtValorLetras" process="@this" listener="#{MBCompraNotaCredito.convertirALetra}" />
                                                    </p:selectOneMenu>
                                                    <p:message for="cbxTipMoneda" display="text"  />
                                                </p:column>
                                                <p:column>
                                                    <h:outputLabel id="lblMotivo" styleClass="lblForm"
                                                                   value="MOTIVO DE EMISIÓN " />
                                                </p:column>
                                                <p:column>
                                                    <p:selectOneMenu id="cbxMotivo" 
                                                                     value="#{BKCompraNotaCredito.notaCreditoFormulario.motEmision}">
                                                        <f:selectItem itemLabel="Seleccionar" itemValue="" />
                                                        <f:selectItems value="#{BKCompraNotaCredito.listaMotivoEmision}"
                                                                       var="tipoMotivo" itemLabel="#{tipoMotivo.desParametroDet}"
                                                                       itemValue="#{tipoMotivo.valNumerico}" />
                                                    </p:selectOneMenu>
                                                    <p:message for="cbxMotivo" display="text"  />
                                                </p:column>
                                                <p:column>
                                                    <h:outputLabel id="lblOtros" styleClass="lblForm"
                                                                   value="OTROS " />
                                                </p:column>
                                                <p:column>
                                                    <p:inputText id="txtOtros"  onkeyup="cambiarMayuscula(this)"
                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.otros}" />
                                                </p:column>
                                            </p:row>

                                            <p:row>
                                                <p:column colspan="3">

                                                    <p:fieldset legend="Documento que Modifica" toggleable="true" collapsed="true"
                                                                toggleSpeed="200">
                                                        <p:panelGrid style="width:80%;margin: 0px auto;">
                                                            <p:row>

                                                                <p:column>
                                                                    <h:outputLabel id="lblDenominacion" styleClass="lblForm"
                                                                                   value="Denominación " />
                                                                </p:column>
                                                                <p:column>
                                                                    <p:inputText id="txtDenominacion"  onkeyup="cambiarMayuscula(this)"
                                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.documentoMod}" />
                                                                </p:column>
                                                                <p:column>
                                                                    <h:outputLabel id="lblN" styleClass="lblForm"
                                                                                   value="Nº " />
                                                                </p:column>
                                                                <p:column>
                                                                    <p:inputText id="txtN"  onkeyup="cambiarMayuscula(this)"
                                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.numeroMod}" />
                                                                </p:column>
                                                            </p:row>
                                                            <p:row>

                                                                <p:column colspan="3">
                                                                    <h:outputLabel id="lblFecha" styleClass="lblForm"
                                                                                   value="Fecha de Emisión del Comprobante de Pago " />
                                                                </p:column>

                                                                <p:column>
                                                                    <p:calendar id="calendarFechaDocumento" 
                                                                                value="#{BKCompraNotaCredito.notaCreditoFormulario.fechaMod}"
                                                                                pattern="dd/MM/yyyy" size="13"
                                                                                showButtonPanel="true" navigator="true" showOn="button" locale="es" />
                                                                </p:column>
                                                            </p:row>
                                                        </p:panelGrid>
                                                    </p:fieldset>
                                                </p:column>
                                                <p:column colspan="3">
                                                    <p:fieldset legend="Recepcion de la Nota de Credito" toggleable="true" collapsed="true"
                                                                toggleSpeed="200">
                                                        <p:panelGrid style="width:80%;margin: 0px auto;">
                                                            <p:row>

                                                                <p:column colspan="3">
                                                                    <h:outputLabel id="lblPersona" styleClass="lblForm"
                                                                                   value="Apellidos y Nombres de quien recepciona la nota de credito " />
                                                                </p:column>
                                                                <p:column>
                                                                    <p:inputText id="txtPersona"  onkeyup="cambiarMayuscula(this)"
                                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.nombreRecep}"  size="40"/>
                                                                </p:column>                                                                                            
                                                            </p:row>
                                                            <p:row>
                                                                <p:column>
                                                                    <h:outputLabel id="lblFechaRecep" styleClass="lblForm"
                                                                                   value="Fecha de Recepción" />
                                                                </p:column>

                                                                <p:column>
                                                                    <p:calendar id="calendarFechaRecep" 
                                                                                value="#{BKCompraNotaCredito.notaCreditoFormulario.fechaRecep}"
                                                                                pattern="dd/MM/yyyy" size="13"
                                                                                showButtonPanel="true" navigator="true" showOn="button"
                                                                                locale="es"  />
                                                                </p:column>
                                                                <p:column >
                                                                    <h:outputLabel id="lblDNI" styleClass="lblForm"
                                                                                   value="DNI " />
                                                                </p:column>
                                                                <p:column>
                                                                    <p:inputText id="txtDNI"  onkeyup="cambiarMayuscula(this)"
                                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.dniRecep}"  size="20"/>
                                                                </p:column>

                                                            </p:row>
                                                        </p:panelGrid>
                                                    </p:fieldset>
                                                </p:column>
                                            </p:row>

                                            <p:row>
                                                <p:column colspan="6">

                                                    <p:panelGrid style="width:100%;margin: 1px auto;">
                                                        <p:row>
                                                            <p:column colspan="5">
                                                                <p:fieldset legend="Detalle">
                                                                    <p:commandButton value="Agregar Detalle" styleClass="ui-priority-primary" id="btnAgregarDet" icon="ui-icon-plus"
                                                                                     actionListener="#{MBCompraDetalleNotaCredito.cargaInicial}" immediate="true" process="@this"
                                                                                     disabled="#{BKCompraNotaCredito.notaCreditoFormulario.fechanc eq null}"
                                                                                     oncomplete="buscarDetalle.show();colspanear()" update=":formularioDetalleNC:pnlFindDetalle" style="font-size:10px;" >
                                                                        <f:attribute name="update" value=":formFacturacion:dataTablaArticulos,:formFacturacion:txtSubtotal,:formFacturacion:txtIgv,:formFacturacion:txtTotal,
                                                                                     :formFacturacion:txtValorLetras,:formFacturacion:pnlBotones" /> 
                                                                        <f:attribute name="dialog" value="buscarDetalle" /> 
                                                                        <f:attribute name="razon" value="#{BKCompraNotaCredito.notaCreditoFormulario.razon}" />  
                                                                    </p:commandButton>

                                                                    <p:dataTable id="dataTablaArticulos" var="det"
                                                                                 value="#{BKCompraNotaCredito.listaDetalleNotaCredito}"
                                                                                 widgetVar="lista"
                                                                                 emptyMessage="No existen articulos agregados"
                                                                                 filteredValue="" rowIndexVar="rowIndex" paginator="true"
                                                                                 rows="10"
                                                                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} 
                                                                                 {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                                                                 rowsPerPageTemplate="10,20,30" paginatorPosition="bottom" styleClass="datable-busqueda">
                                                                        <p:columnGroup type="header">  
                                                                            <p:row>  
                                                                                <p:column headerText="Num." style="width: 5%" />  
                                                                                <p:column headerText="Cantidad" />  
                                                                                <p:column headerText="Descripcion" />  
                                                                                <p:column headerText="Precio" />  
                                                                                <p:column headerText="Importe" />  
                                                                                <p:column headerText="Acciones" />  
                                                                            </p:row>  
                                                                        </p:columnGroup> 

                                                                        <p:column id="idColumnaNum" style="width: 5%" rendered="#{MBCompraNotaCredito.isRenderedColumn(det.estadoRegistro)}"
                                                                                  >
                                                                            <h:outputText value="#{rowIndex+1}" />
                                                                        </p:column>

                                                                        <p:column id="idColumnaCant" style="width: 10%" rendered="#{MBCompraNotaCredito.isRenderedColumn(det.estadoRegistro)}"
                                                                                  sortBy="#{det.cantidad}" >
                                                                            <h:outputText value="#{det.cantidad}" />
                                                                        </p:column>

                                                                        <p:column id="idColumnaDesc" style="width: 55%" rendered="#{MBCompraNotaCredito.isRenderedColumn(det.estadoRegistro)}"
                                                                                  sortBy="#{det.descripcion}" >
                                                                            <h:outputText value="#{det.descripcion}" />
                                                                        </p:column>


                                                                        <p:column id="idColumnaPrecio" style="width: 10%" rendered="#{MBCompraNotaCredito.isRenderedColumn(det.estadoRegistro)}"
                                                                                  sortBy="#{det.precioUni}" >
                                                                            <h:outputText value="#{det.precioUni}" >
                                                                                <f:convertNumber  minFractionDigits="2" maxFractionDigits="2"  />
                                                                            </h:outputText>
                                                                        </p:column>

                                                                        <p:column id="idColumnaImporte" style="width: 10%" rendered="#{MBCompraNotaCredito.isRenderedColumn(det.estadoRegistro)}"
                                                                                  sortBy="#{det.importe}" >
                                                                            <h:outputText value="#{det.importe}" >
                                                                                <f:convertNumber  minFractionDigits="2" maxFractionDigits="2"  />
                                                                            </h:outputText>
                                                                        </p:column>


                                                                        <p:column id="idAccionesArticulo" rendered="#{MBCompraNotaCredito.isRenderedColumn(det.estadoRegistro)}"
                                                                                  style="width: 10%">
                                                                            <p:commandButton id="btnEliminarDetGuia" title="Eliminar" process="@this"
                                                                                             icon="ui-icon-close"  oncomplete="confirmacionQuitar.show()">
                                                                                <f:setPropertyActionListener value="#{det}" target="#{BKCompraNotaCredito.detalleSeleccionado}" /> 
                                                                            </p:commandButton>
                                                                        </p:column>

                                                                    </p:dataTable>
                                                                </p:fieldset>
                                                            </p:column>
                                                        </p:row>
                                                    </p:panelGrid>

                                                </p:column>
                                            </p:row>

                                            <p:row>

                                                <p:column colspan="4">

                                                </p:column>
                                                <p:column>
                                                    <h:outputLabel id="lblSubtotal" value="SUBTOTAL " styleClass="lblForm" />
                                                </p:column>
                                                <p:column>                                                                                             
                                                    <p:inputText id="txtSubtotal"  onkeyup="cambiarMayuscula(this)"
                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.valorVenta}" >
                                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                    </p:inputText>
                                                </p:column>


                                            </p:row>
                                            <p:row>

                                                <p:column colspan="4">

                                                </p:column>
                                                <p:column>
                                                    <h:outputLabel id="lblIGV" value="IGV " styleClass="lblForm" />
                                                </p:column>
                                                <p:column>                                                                                             
                                                    <p:inputText id="txtIgv"  onkeyup="cambiarMayuscula(this)"
                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.igv}" >
                                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                    </p:inputText>
                                                </p:column>


                                            </p:row>
                                            <p:row>

                                                <p:column colspan="4">

                                                </p:column>
                                                <p:column>
                                                    <h:outputLabel id="lblTotal" value="TOTAL " styleClass="lblForm" />
                                                </p:column>
                                                <p:column>                                                                                             
                                                    <p:inputText id="txtTotal"  onkeyup="cambiarMayuscula(this)"
                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.total}" >
                                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                                    </p:inputText>
                                                </p:column>


                                            </p:row>
                                            <p:row>
                                                <p:column colspan="6">
                                                    <h:outputLabel id="lblValorLetras" styleClass="lblForm"
                                                                   value="SON: " />
                                                    <p:inputText id="txtValorLetras"  onkeyup="cambiarMayuscula(this)"
                                                                 value="#{BKCompraNotaCredito.notaCreditoFormulario.totalletras}" size="150"/>

                                                </p:column>
                                            </p:row>


                                        </p:panelGrid>
                                    </p:fieldset>
                                </p:column>
                            </p:row>


                        </p:panelGrid>

                        <p:panelGrid id="pnlBotones" style="width:40%;margin: 10px auto;">

                            <p:row>
                                <p:column>
                                    <p:commandButton  action="#{BKCompraNotaCredito.comando.aceptar()}" ajax="false" 
                                                      value="#{BKCompraNotaCredito.comando.nombre}" id="btnGuardar"
                                                      disabled="#{BKCompraNotaCredito.listaDetalleNotaCredito.size() eq 0}"/>
                                </p:column>
                                <p:column>
                                    <p:commandButton action="#{MBCompraNotaCredito.cancelar()}" ajax="false" immediate="true" value="Cancelar"/>
                                </p:column>
                            </p:row>

                        </p:panelGrid>

                        <h:panelGrid styleClass="mensaje_obligatorio">(*) Campos Requeridos</h:panelGrid>

                    </p:panel>

                    <p:confirmDialog id="dlgEditarDetalle" message="¿Esta seguro de eliminar este detalle  del documento?" 
                                     header="Eliminar Detalle" severity="alert" widgetVar="confirmacionQuitar">
                        <h:panelGrid style="width: auto;margin:0px auto;border:0px;padding: 0 5px" columns="2">
                            <p:commandButton id="btnAceptarDetalle" value="Si"  oncomplete="confirmacionQuitar.hide();colspanear()"  process="@this"
                                             actionListener="#{MBCompraNotaCredito.eliminarDetalle()}"  ajax="true" 
                                             update="dataTablaArticulos,txtSubtotal,txtIgv,txtTotal,txtValorLetras,pnlBotones"/>  
                            <p:commandButton id="btnCancelarDetalle" value="No" onclick="confirmacionQuitar.hide()" type="button" />
                        </h:panelGrid>
                    </p:confirmDialog>	
                    
                    <script>
                                                        function colspanear()
                                                        {
                                                            document.getElementById("formFacturacion:dataTablaArticulos_paginator_bottom").colSpan = "6";

                                                        }
                    </script>

                </h:form>

                <p:dialog widgetVar="buscarDetalle"  header="Detalle" modal="true" dynamic="true" width="700" height="500">
                    <ui:include src="detalleNotaCredito.xhtml" /> 
                </p:dialog>

            </f:view>
        </ui:define>
    </ui:composition>


</html>
